/*
	封装的一个库
	方法一：数据请求，ajax({method = 'get', url, data = {}, success})
*/ 

let lb = {
		
	// ajax综合方法
	ajax({method = 'get', url, data = {}, success} = {}){
		
		// 创建ajax实例对象
		let xhr = new XMLHttpRequest();
		// 监听事件
		xhr.onreadystatechange = function(){
			// 验证ajax的状态
			if(xhr.readyState == 4){
				//验证http状态
				if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
					//拿到响应的数据 => JSON
					let datass = JSON.parse(xhr.response);
					success(datass);
				}
			}
		};
		
		// 参数语法 只能是序列化  page=3&pagesize=5
		let str = Object.entries(data).map((item, index) => {
			//要把&符号转义， 不然会当做参数的分界符
			item[1] = window.encodeURIComponent(item[1]);
			
			return item.join('='); 
		}).join('&');
		
		if(method == 'get'){
			// 配置
			xhr.open('get', url + '?' + str);
			// 发送
			xhr.send();
		}else if(method == 'post'){
			// 配置
			xhr.open('post', url);
			// 在 发送之前设置请求头
			xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			// 发送
			xhr.send(str);
		}		
	},
	
	//获取地址参数的属性值，封装成一个方法
	getUrlValue(pre){
		let obj = Object.fromEntries(window.location.search.replace('?', '').split('&').map(item => {
			return item.split('=')
		}));
		// 返回出去 有-返回属性值，没有-返回 null
		return obj[pre] ? obj[pre] : null;
	},
	
}